#!/bin/bash

#批量修改文件夹下所有文件的扩展名

string_1='                  '
string_2='---------------------------'
green='\e[32m'
red='\e[31m'
defult='\e[39m'
blue='\e[34m'
end='\e[0m'

if [[ -z $1 || -z $2 || -z $3 ]];then
    echo -e "\n$red usage:脚本 目录 需修改文件的扩展名 改为何种扩展名\n$end"
    echo -ne "$green 例如修改当前目录下所有.text文件的扩展名为.c：$end"
    echo -e "$green ./modify_file_extension.sh ./ text c\n$end"
    exit
fi

dir=$1'*'$2
ls $dir &>/dev/null
if [[ $? -ne 0 ]];then
    echo -e "\n$red 没有此类文件或目录无效！\n 规范的目录实例： ./或/user/bin/ \n$end"
    exit
else 
    echo -e "\n 找到以下目标文件："
    ls $dir
    echo -e "\n"
fi

for i in $(ls $dir)
do
    file=${i%.*}.$3

    echo -e "$red 是否修改文件 $i 为文件 $file ？\n$end"
    read -p " 输入y/Y/yes/YES确认修改，输入其他取消修改:" confirm

    if [[ $confirm == 'y' || $confirm == 'Y' || $confirm == 'yes' || $confirm == 'YES' ]];then
        mv $i $file
    else
        echo -e "$red 操作取消 !\n$end"
        continue
    fi

    if [ $? -ne 0 ];then
        echo -e "$red 修改文件 $i 为文件 $file 时出错！\n$end"
        continue
    else
        echo -e "$green 已修改文件 $i 为文件 $file!\n$end"
    fi
done

echo -e "ls $1 "
ls $1

exit